﻿using System;
namespace Producers.Kis.Xtee.Riik.Ee.Producer.Kis {
    
    
    public partial class ClaimSpecification : global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IClaimSpecification {
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.CalculationPeriod @__calculationPeriod;
        
        private decimal @__interestRate;
        
        private System.DateTime? @__calculationBeginning;
        
        private System.DateTime? @__calculationEnd;
        
        public ClaimSpecification() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public ClaimSpecification(global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.CalculationPeriod @calculationPeriod, decimal @interestRate, System.DateTime? @calculationBeginning, System.DateTime? @calculationEnd) {
            this.@__calculationPeriod = @calculationPeriod;
            this.@__interestRate = @interestRate;
            this.@__calculationBeginning = @calculationBeginning;
            this.@__calculationEnd = @calculationEnd;
        }
        
        /// <summary>
        /// Required parameters
        /// </summary>
        public ClaimSpecification(global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.CalculationPeriod @calculationPeriod, decimal @interestRate) {
            this.@__calculationPeriod = @calculationPeriod;
            this.@__interestRate = @interestRate;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected ClaimSpecification(IClaimSpecification @claimSpecification) {
            this.@__calculationPeriod = @claimSpecification.CalculationPeriod;
            this.@__interestRate = @claimSpecification.InterestRate;
            this.@__calculationBeginning = @claimSpecification.CalculationBeginning;
            this.@__calculationEnd = @claimSpecification.CalculationEnd;
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.CalculationPeriod CalculationPeriod {
            get {
                return this.@__calculationPeriod;
            }
            set {
                this.@__calculationPeriod = value;
            }
        }
        
        public virtual decimal InterestRate {
            get {
                return this.@__interestRate;
            }
            set {
                this.@__interestRate = value;
            }
        }
        
        public virtual System.DateTime? CalculationBeginning {
            get {
                return this.@__calculationBeginning;
            }
            set {
                this.@__calculationBeginning = value;
            }
        }
        
        public virtual System.DateTime? CalculationEnd {
            get {
                return this.@__calculationEnd;
            }
            set {
                this.@__calculationEnd = value;
            }
        }
    }
}
